Searchable electronic catalogs are commonly used in support of various different electronic commerce and purchasing functions. Such catalogs may be used by an individual or company to select items to purchase from a number of items available in the catalog. Catalogs are also commonly used in enterprise applications, where several different sites within an enterprise may access a common system that may provide a catalog or catalogs of items, purchase order generation, and payment and cost tracking. These catalogs typically have an interface for selectively retrieving and providing records corresponding to items of the catalog as well as a system for electronically purchasing any items that are selected.
Many items that may be identified in such catalogs are available in a variety of different configurations and each configuration may have a unique part number and/or other identifying features associated therewith. Furthermore, different items may be available at different sites within an enterprise, available from a number of different suppliers, and/or available at different prices based on the quantity purchased. For example, a particular type of pen may be available with different colors and points, a garment may be available in different sizes, fabrics, and colors, and a power supply may be available with different input and output voltages, current capabilities, and housings. Furthermore, each of such items may be available at one of a number of locations and/or from one of a number of suppliers. Additionally, different locations may use different suppliers for a particular item, with the different suppliers having unique supplier part numbers and prices. Different locations and different suppliers often result in further added complexity, such as when different locations within a company have different corporate part numbers for an item, or when particular suppliers and/or locations use different currency. If all the part numbers, suppliers, locations, prices, and any other information for an item are each listed as separate items within a catalog, the catalog can become quite cumbersome to generate and to maintain. Furthermore, finding and selecting items from such catalogs can become quite difficult. Alternatively, if the different configurations and/or locations associated with an item are ignored for purposes of providing a relatively simple catalog, then details about the item and complete item information may be unavailable for an item. Such incomplete information can result in inefficiencies for an individual, company, and/or enterprise due to, for example, increased delivery time and/or increased cost. Furthermore, for an enterprise managing a supply chain, complete and accurate information is required for enhanced efficiency in the supply chain management. For example, if an enterprise has traditionally been ordering a particular part from two different suppliers, a volume discount may be available in the event that the part is ordered from a single supplier in larger quantities. In many events, an enterprise may also desire to avoid a single source for any particular item required in the enterprise's business to reduce the risk of supply chain disruptions. In such a case, two or more suppliers may be desired for such an item, and efficient identification and management of information related to the different suppliers may help identify such suppliers and efficiently manage and distribute orders among different suppliers.
Pens and shirts represent simple examples of products with a variety of available configurations that may be available from numerous different suppliers, prices, locations, and have various different part numbers. In some product domains, there may be thousands or even millions of different possible combinations for a particular item. A lighting fixture, for example, may be offered by different suppliers, with each supplier having different prices based on the volume of fixtures purchased. The fixture may be available at different locations, may have different corporate part numbers based on the supplier and/or location, and may have different prices based on the location. If each of the listed options has only two different values, the result is 32 possible combinations for that particular item. Such items commonly have more than two different values for each of the different options, with each option commonly having sub-options, and thus significantly more possible combinations. When represented as thousands of different items, one for each potential combination, such items become almost impossible to search, load, extract, and add to an electronic catalog. Furthermore, searching through thousands of possibilities can be very time consuming and confusing for a user.
Traditionally, many catalogs incorporating such items have been handled by coding long sequences of conditional branch instructions, typically in the form of “if, then” statements, or by defining a number of different attributes of an item and storing item data in a different table identified by a foreign key for the attribute. Such configurations, while usable, often result in a complex logic system that may be difficult to modify so as to add different products and/or locations for a particular product. In addition, such configurations are often difficult to translate across platforms to populated catalogs that operate using different software or architectures. Updates and translations are particularly important because the options of many items, such as suppliers, price, and locations, are commonly changed at relatively frequent intervals. Referring back to the particular pen example, an additional price and/or site may be added for a particular pen at any time. For the lighting fixture mentioned above, it would also be common to change configurations such as changing the available housings or finishes, that can result in changes for the item in each of the locations. As a result, such traditional systems commonly become quite complex as the number of items and are added to various catalogs.